
function RechercheController($scope, Recherche, StringManager, $rootScope, $filter) {
    var vm = this;
    var RechercheService = new Recherche();

    vm.RechercheCl = new RechercheClasse().init();
    vm.urlVersResultat = '';

    $scope.sejoursLabelCompteurs = null;

    var initialiserLesFiltresDeRecheche = function () {
        RechercheService.retournerLesFiltresAccueil().then(function(e) {
            vm.RechercheCl.initListes( e.data );

            vm.listeRegionsNonFiltree = angular.copy( e.data.regionsUtil );
        })
    }

    vm.chargerLesFiltres = function(filtre) { 
        return RechercheService.retourneFiltresRecherche(filtre);
    }

    // $scope.$watch('fltResult', function(newVal, oldVal) {
    //     var compteurSejour = 0;
    //     var filteredSejour = $filter('filter')($scope.sejours, newVal);

    //     nombreDeSejoursFiltre (filteredSejour);
    // });

    // $scope.$watch('sejours', function(newVal, oldVal) {     
    //     nombreDeSejoursFiltre (newVal);
    // });

    // var nombreDeSejoursFiltre = function (data) {
    //     RechercheService = new Recherche();
    //     $scope.sejoursLabelCompteurs = RechercheService.nombreDeSejoursFiltres(data);
    // }


    // initialise par défaut les mots-clés passées dans l'url dans la zone Recherche
    // Ou on initialise les mots-clés avec ceux qui sont dans le localstorage
    var retrouverLesFiltresDuneRecherche = function () {
        
        $scope.filtreListes.regionsUtil = vm.RechercheCl.libelleRegionParDefaut;

        // Filtres dans les cookie
        var filtresCookie = RechercheService.retournerLesFiltresCookie();

        console.log(filtresCookie)

        if( filtresCookie != null ) {
            vm.RechercheCl = vm.RechercheCl.init(filtresCookie);

            $scope.filtreListes = vm.RechercheCl.retrouverLesFiltresDuneRecherche( filtresCookie, $scope.filtreListes, $scope.listeRegionsNonFiltree );
        }

        // Filtres présents dans l'URL
        var separateurFiltresUrl = "+";
        var filtresUrl = retourneParametresDeRechercheDansLUrl();

        if( filtresUrl != null ) {
            var aFiltresUrl = filtresUrl.split(separateurFiltresUrl);
            
            var aFiltresInitialise = [];

            for( var i=0; i<aFiltresUrl.length; i++ ){
               aFiltresInitialise.push( { libelleFiltre:aFiltresUrl[i] } );
            }

            // $scope.filtreTags = aFiltresInitialise;
            vm.RechercheCl.filtreTags = aFiltresInitialise;
        }

        // $scope.lancerLaRecherche();// hop on lance la recherche
    }

    vm.msFiltrePaysChange = function(data) {
        vm.RechercheCl.filtrerLesRegionsSelonLePays();
    }

    // LANCER LA RECHERCHE + REMETTRE FILTRES COOKIE DS LA VUE
    vm.lancerLaRecherche = function() {
        
        if( vm.RechercheCl.auMoinsUnFiltreSaisie() > 0 ) {
            vm.urlVersResultat = vm.RechercheCl.ListesVersFiltresUrl( false );

            document.rechercheForm.action = '/r' + vm.urlVersResultat;
            document.rechercheForm.submit();
        }        
    }

    var retourneParametresDeRechercheDansLUrl = function () {
        
        var dataUrl = StringManager.getUrlParameters( "recherche", "", true );// retourne la valeur du param "recherche" ds l'URL

        if( typeof dataUrl != "undefined" && dataUrl != "") {
            return dataUrl;
        }

        return null;
    }
    
    initialiserLesFiltresDeRecheche();
}
